clc;
clear;
profile off

platConfig = PlatInit();
cellParams = CellConfig(platConfig);
cellParams = ChannelConfig(platConfig,cellParams);
cellParams = RRC(platConfig,cellParams);
cellData   = struct();

if cellParams.cellConfig.prachEnable
    cellParams = PrachConfig(platConfig,cellParams);
    cellParams = PrachConfgParse(cellParams);
    cellData   = PrachUEProc(cellParams);
    cellData.prach.upConvSignal   = UpConverter(cellParams,cellData.prach.prachSeq1ms);
    cellData.prach.prachChnSignal = ChannelProc(cellParams,cellData.prach.upConvSignal);
    cellData.prach.downConvSignal = DownConverter(cellParams,cellData.prach.prachChnSignal);
    cellData = PrachENBProc(cellParams,cellData);
end

if cellParams.cellConfig.pucch1Enable
    cellParams = Pucch1Config(platConfig,cellParams);
    cellParams = Pucch1ConfigParse(cellParams);
    cellData   = Pucch1UEProc(cellParams,cellData);
end

if cellParams.cellConfig.ssbEnable
    cellParams = SSBConfig(platConfig,cellParams);
    cellParams = SSBConfigPares(cellParams);
    cellData   = SSBProc(cellParams,cellData);
end

profile viewer
profsave
codelines = reallines('./');
fprintf('code lines(omits the emtpy lines and comment lines): %d\n',codelines);

